package org.jeecg.modules.basic.material.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 物料信息管理
 * @Author: jeecg-boot
 * @Date:   2023-07-27
 * @Version: V1.0
 */
@Data
public class BasicMaterialVO {

	/**主键*/
	@ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
	@ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**物料名称*/
	@ApiModelProperty(value = "物料名称")
    private String name;
	/**物料编码*/
	@ApiModelProperty(value = "物料编码")
    private String code;
	/**规格型号*/
	@ApiModelProperty(value = "规格型号")
    private String specification;
	/**物料分类id*/
	@ApiModelProperty(value = "物料分类")
    private String materialTypeId;
	/**物料分类名称*/
	@ApiModelProperty(value = "物料分类名称")
	private String materialTypeName;
	/**启用批次管理*/
	@ApiModelProperty(value = "启用批次管理")
    private String batchManagementFlag;
	/**启用序列号管理*/
	@ApiModelProperty(value = "启用序列号管理")
    private String numberManagementFlag;
	/**批次编码规则*/
	@ApiModelProperty(value = "批次编码规则")
    private String batchRuleId;
	/**批次编码规则名称*/
	@ApiModelProperty(value = "批次编码规则名称")
    private String batchRuleName;
	/**序列号编码规则*/
	@ApiModelProperty(value = "序列号编码规则")
    private String numberRuleId;
	/**序列号编码规则名称*/
	@ApiModelProperty(value = "序列号编码规则名称")
    private String numberRuleName;
	/**状态*/
	@ApiModelProperty(value = "状态")
    private String status;
	/**库存单位*/
	@ApiModelProperty(value = "库存单位")
    private String inventoryUnitId;
	/**库存单位名称*/
	@ApiModelProperty(value = "库存单位名称")
    private String inventoryUnitName;
	/**辅助单位*/
	@ApiModelProperty(value = "辅助单位")
    private String assistantUnitId;
	/**辅助单位名称*/
	@ApiModelProperty(value = "辅助单位名称")
    private String assistantUnitName;
	/**1库存单位等于多少辅助单位*/
	@ApiModelProperty(value = "1库存单位等于多少辅助单位")
    private String number;
	/**仓库*/
	@ApiModelProperty(value = "仓库")
    private String warehouseId;
	/**仓库名称*/
	@ApiModelProperty(value = "仓库名称")
    private String warehouseName;
	/**库区*/
	@ApiModelProperty(value = "库区")
	private String warehouseAreaId;
	/**库区名称*/
	@ApiModelProperty(value = "库区名称")
    private String warehouseAreaName;
	/**安全库存*/
	@ApiModelProperty(value = "安全库存")
    private String safeInventory;
	/**最大库存*/
	@ApiModelProperty(value = "最大库存")
    private String maxInventory;
	/**最小库存*/
	@ApiModelProperty(value = "最小库存")
    private String minInventory;
	/**检验信息*/
	@ApiModelProperty(value = "检验信息")
    private String inspect;
	/**载具*/
	@ApiModelProperty(value = "载具")
    private String vehicleId;
	/**载具名称*/
	@ApiModelProperty(value = "载具名称")
    private String vehicleName;
	/**删除状态(0-正常,1-已删除)*/
	@ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    private Integer delFlag;
	/**租户id*/
	@ApiModelProperty(value = "租户id")
    private Integer tenantId;
	//是否使用 大于0：使用；其他：未使用
	@ApiModelProperty(value = "是否使用 大于0：使用；其他：未使用")
	@Dict(dicCode = "yn")
	private Integer used;

	/**
	 * 物料分类id集合
	 */
	@TableField(exist = false)
	private List<String> materialTypeIds;

	/**
	 * 库存信息集合
	 */
	private List<WmsBasicMaterialStockInfo> list;

}
